﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Spanner
{
    public partial class UI
    {
        public static Act SetDate(Var<Date> x, Expr<int> y) { return JSAct("#.setDate(#)", x, y); }
        public static Act SetFullYear(Var<Date> x, Expr<int> y) { return JSAct("#.setFullYear(#)", x, y); }
        public static Act SetHours(Var<Date> x, Expr<int> y) { return JSAct("#.setHours(#)", x, y); }
        public static Act SetMilliseconds(Var<Date> x, Expr<int> y) { return JSAct("#.setMilliseconds(#)", x, y); }
        public static Act SetMinutes(Var<Date> x, Expr<int> y) { return JSAct("#.setMinutes(#)", x, y); }
        public static Act SetMonth(Var<Date> x, Expr<int> y) { return JSAct("#.setMonth(#)", x, y); }
        public static Act SetSeconds(Var<Date> x, Expr<int> y) { return JSAct("#.setSeconds(#)", x, y); }
        public static Act SetTime(Var<Date> x, Expr<int> y) { return JSAct("#.setTime(#)", x, y); }
        public static Act SetUTCDate(Var<Date> x, Expr<int> y) { return JSAct("#.setUTCDate(#)", x, y); }
        public static Act SetUTCFullYear(Var<Date> x, Expr<int> y) { return JSAct("#.setUTCFullYear(#)", x, y); }
        public static Act SetUTCHours(Var<Date> x, Expr<int> y) { return JSAct("#.setUTCHours(#)", x, y); }
        public static Act SetUTCMilliseconds(Var<Date> x, Expr<int> y) { return JSAct("#.setUTCMilliseconds(#)", x, y); }
        public static Act SetUTCMinutes(Var<Date> x, Expr<int> y) { return JSAct("#.setUTCMinutes(#)", x, y); }
        public static Act SetUTCMonth(Var<Date> x, Expr<int> y) { return JSAct("#.setUTCMonth(#)", x, y); }
        public static Act SetUTCSeconds(Var<Date> x, Expr<int> y) { return JSAct("#.setUTCSeconds(#)", x, y); }

        public static Act SetDate(Param<Date> x, Expr<int> y) { return JSAct("#.setDate(#)", x, y); }
        public static Act SetFullYear(Param<Date> x, Expr<int> y) { return JSAct("#.setFullYear(#)", x, y); }
        public static Act SetHours(Param<Date> x, Expr<int> y) { return JSAct("#.setHours(#)", x, y); }
        public static Act SetMilliseconds(Param<Date> x, Expr<int> y) { return JSAct("#.setMilliseconds(#)", x, y); }
        public static Act SetMinutes(Param<Date> x, Expr<int> y) { return JSAct("#.setMinutes(#)", x, y); }
        public static Act SetMonth(Param<Date> x, Expr<int> y) { return JSAct("#.setMonth(#)", x, y); }
        public static Act SetSeconds(Param<Date> x, Expr<int> y) { return JSAct("#.setSeconds(#)", x, y); }
        public static Act SetTime(Param<Date> x, Expr<int> y) { return JSAct("#.setTime(#)", x, y); }
        public static Act SetUTCDate(Param<Date> x, Expr<int> y) { return JSAct("#.setUTCDate(#)", x, y); }
        public static Act SetUTCFullYear(Param<Date> x, Expr<int> y) { return JSAct("#.setUTCFullYear(#)", x, y); }
        public static Act SetUTCHours(Param<Date> x, Expr<int> y) { return JSAct("#.setUTCHours(#)", x, y); }
        public static Act SetUTCMilliseconds(Param<Date> x, Expr<int> y) { return JSAct("#.setUTCMilliseconds(#)", x, y); }
        public static Act SetUTCMinutes(Param<Date> x, Expr<int> y) { return JSAct("#.setUTCMinutes(#)", x, y); }
        public static Act SetUTCMonth(Param<Date> x, Expr<int> y) { return JSAct("#.setUTCMonth(#)", x, y); }
        public static Act SetUTCSeconds(Param<Date> x, Expr<int> y) { return JSAct("#.setUTCSeconds(#)", x, y); }

        public static Act SetDate(ObsVar<Date> x, Expr<int> y) { return SetDate(Ref(x), y); }
        public static Act SetFullYear(ObsVar<Date> x, Expr<int> y) { return SetFullYear(Ref(x), y); }
        public static Act SetHours(ObsVar<Date> x, Expr<int> y) { return SetHours(Ref(x), y); }
        public static Act SetMilliseconds(ObsVar<Date> x, Expr<int> y) { return SetMilliseconds(Ref(x), y); }
        public static Act SetMinutes(ObsVar<Date> x, Expr<int> y) { return SetMinutes(Ref(x), y); }
        public static Act SetMonth(ObsVar<Date> x, Expr<int> y) { return SetMonth(Ref(x), y); }
        public static Act SetSeconds(ObsVar<Date> x, Expr<int> y) { return SetSeconds(Ref(x), y); }
        public static Act SetTime(ObsVar<Date> x, Expr<int> y) { return SetTime(Ref(x), y); }
        public static Act SetUtcDate(ObsVar<Date> x, Expr<int> y) { return SetUTCDate(Ref(x), y); }
        public static Act SetUtcFullYear(ObsVar<Date> x, Expr<int> y) { return SetUTCFullYear(Ref(x), y); }
        public static Act SetUtcHours(ObsVar<Date> x, Expr<int> y) { return SetUtcHours(Ref(x), y); }
        public static Act SetUtcMilliseconds(ObsVar<Date> x, Expr<int> y) { return SetUtcMilliseconds(Ref(x), y); }
        public static Act SetUtcMinutes(ObsVar<Date> x, Expr<int> y) { return SetUtcMinutes(Ref(x), y); }
        public static Act SetUtcMonth(ObsVar<Date> x, Expr<int> y) { return SetUtcMonth(Ref(x), y); }
        public static Act SetUtcSeconds(ObsVar<Date> x, Expr<int> y) { return SetUtcSeconds(Ref(x), y); }

        public static Act SetDate(Expr<ObsVarRef<Date>> x, Expr<int> y) { return JSAct("#(new Date(#().setDate(#)))", x, x, y); }
        public static Act SetFullYear(Expr<ObsVarRef<Date>> x, Expr<int> y) { return JSAct("#(new Date(#().setFullYear(#)))", x, x, y); }
        public static Act SetHours(Expr<ObsVarRef<Date>> x, Expr<int> y) { return JSAct("#(new Date(#().setHours(#)))", x, x, y); }
        public static Act SetMilliseconds(Expr<ObsVarRef<Date>> x, Expr<int> y) { return JSAct("#(new Date(#().setMilliseconds(#)))", x, x, y); }
        public static Act SetMinutes(Expr<ObsVarRef<Date>> x, Expr<int> y) { return JSAct("#(new Date(#().setMinutes(#)))", x, x, y); }
        public static Act SetMonth(Expr<ObsVarRef<Date>> x, Expr<int> y) { return JSAct("#(new Date(#().setMonth(#)))", x, x, y); }
        public static Act SetSeconds(Expr<ObsVarRef<Date>> x, Expr<int> y) { return JSAct("#(new Date(#().setSeconds(#)))", x, x, y); }
        public static Act SetTime(Expr<ObsVarRef<Date>> x, Expr<int> y) { return JSAct("#(new Date(#().setTime(#)))", x, x, y); }
        public static Act SetUTCDate(Expr<ObsVarRef<Date>> x, Expr<int> y) { return JSAct("#(new Date(#().setUTCDate(#)))", x, x, y); }
        public static Act SetUTCFullYear(Expr<ObsVarRef<Date>> x, Expr<int> y) { return JSAct("#(new Date(#().setUTCFullYear(#)))", x, x, y); }
        public static Act SetUtcHours(Expr<ObsVarRef<Date>> x, Expr<int> y) { return JSAct("#(new Date(#().setUTCHours(#)))", x, x, y); }
        public static Act SetUtcMilliseconds(Expr<ObsVarRef<Date>> x, Expr<int> y) { return JSAct("#(new Date(#().setUTCMilliseconds(#)))", x, x, y); }
        public static Act SetUtcMinutes(Expr<ObsVarRef<Date>> x, Expr<int> y) { return JSAct("#(new Date(#().setUTCMinutes(#)))", x, x, y); }
        public static Act SetUtcMonth(Expr<ObsVarRef<Date>> x, Expr<int> y) { return JSAct("#(new Date(#().setUTCMonth(#)))", x, x, y); }
        public static Act SetUtcSeconds(Expr<ObsVarRef<Date>> x, Expr<int> y) { return JSAct("#(new Date(#().setUTCSeconds(#)))", x, x, y); }

    }
}
